Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

470
Vistas
mysql> SELECT COUNT(*) vs SHOW TABLE STATUS para el conteo de filas

Tenemos una tabla en nuestra base de datos que tiene decenas de millones de entradas (10.1.21-MariaDB; motor de tabla InnoDB; sistema operativo Windows). Podemos obtener el número de filas en la tabla instantáneamente usando el comando SHOW TABLE STATUS LIKE 'my_table_name' . Sin embargo, SELECT COUNT(*) FROM my_table_name tarda unos minutos en completarse.


P) ¿Por qué SHOW TABLE STATUS LIKE 'my_table_name' es mucho más rápido que SELECT COUNT(*) FROM my_table_name ?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Porque una es una consulta que cuenta todas las filas y la otra es un comando que recupera las estadísticas que el motor de base de datos mantiene sobre la tabla. No hay ninguna garantía firme de que la estadística de la tabla esté actualizada, por lo que la única forma de obtener un recuento preciso es contar las filas, pero es posible que no necesite que sea perfectamente preciso todo el tiempo. Por lo tanto, puede elegir cualquiera, dependiendo de su deseo de precisión frente a velocidad, etc.

Vea aquí esta captura de pantalla de https://pingcap.com/docs/stable/sql-statements/sql-statement-show-table-status/

ingrese la descripción de la imagen aquí

Puede ver que el ejemplo inserta 5 filas, pero las estadísticas de la tabla están desactualizadas y la tabla todavía informa 0 filas. Ejecutar ANALYZE TABLE llevará (probablemente) más tiempo que contar las filas, pero las estadísticas estarán actualizadas (al menos durante un tiempo) después.

over 4 years ago · Santiago Trujillo Denunciar

0

Un enfoque sugerido para obtener un recuento razonablemente preciso del tamaño de la tabla, cuando SELECT COUNT(*) tarda mucho en completarse, podría ser:
ANALYZE TABLE my_table_name; SHOW TABLE STATUS LIKE 'my_table_name';

Esto resulta especialmente útil cuando se importa una gran cantidad de datos a una tabla y desea realizar un seguimiento del progreso del proceso de importación.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda